lefthook
Git hooks manager.
What we like
Define all your Git hooks in YAML. Supports local config to override main config in your repo. Supports interaction with commands or scripts. Can run conditionally e.g. on specific branches or environments. Available as a package for lots of ecosystems e.g. npm, Go, Python, macOS.
What we don't like
Nothing really! Some reports of issues on Windows.